package ar.uba.fi.taller2.cmmiassistant.frontend.evaluacion.util;

import java.util.Set;

import ar.uba.fi.taller2.cmmiassistant.controlador.Controlador;
import ar.uba.fi.taller2.cmmiassistant.modelo.cmmi.AreaProceso;
import ar.uba.fi.taller2.cmmiassistant.modelo.cmmi.Madurez;
import ar.uba.fi.taller2.cmmiassistant.modelo.cmmi.Practica;
import ar.uba.fi.taller2.cmmiassistant.modelo.resultados.NivelCumplimientoPractica;
import ar.uba.fi.taller2.cmmiassistant.modelo.resultados.ResultadoAreaProceso;

public class AreaProcesoConversorEvaluables implements ConversorEvaluables {

	private Controlador controlador = null;
	
	public Object getCalificacion(Object ent) {
		AreaProceso areaProceso = (AreaProceso)ent;
		Set<ResultadoAreaProceso> areasProceso = 
			getControlador().getModelo().getEvaluacionSeleccionada().getValor().getResultado().getResultadosAreasProceso();
		if (getControlador().getModelo().getInstanciaSeleccionada().getValor()!=null){
			areasProceso = getControlador().getModelo().getInstanciaSeleccionada().getValor().getResultado().getResultadosAreasProceso();
		}
		for (ResultadoAreaProceso proceso : areasProceso) {
			if (proceso.getAreaProceso().getIdAreaProceso().equals(areaProceso.getIdAreaProceso())){
				return proceso.getCapacidad().getNivel();
			}
		}
		return null;
	}

	public String getNombreCalificacion(Object ent) {
		AreaProceso areaProceso = (AreaProceso) ent;
		return areaProceso.getNombre();
	}

	public void notificarCambioCalificacion(Object ent, Object nivelCumplimiento) {
		AreaProceso areaProceso = (AreaProceso) ent;
		Integer calificacion = (Integer) nivelCumplimiento;
		getControlador().actualizarAreaProceso(areaProceso, calificacion);		
	}

	public Controlador getControlador() {
		return controlador;
	}

	public void setControlador(Controlador controlador) {
		this.controlador = controlador;
	}
}
